欧拉角和旋转变换:易混淆概念区分&MATLAB计算

您所在的位置:网站首页 欧拉角 旋转顺序 欧拉角和旋转变换:易混淆概念区分&MATLAB计算

欧拉角和旋转变换:易混淆概念区分&MATLAB计算

2024-07-13 12:12| 来源: 网络整理| 查看: 265

关于用欧拉角表示的坐标系姿态旋转变换,大多数教科书和博客上的讲解不甚明晰,自己多方研究分析后,根据自己的理解做如下记录,一方面帮助自己加深巩固,另一方面欢迎各位方家指正。

1. 概念定义

在这里插入图片描述 在这里插入图片描述 绕坐标系单轴旋转的矩阵: 在这里插入图片描述

2 描述坐标系旋转变换的两种形式:

在这里插入图片描述在这里插入图片描述 在这里插入图片描述

内在旋转与外在旋转的转换关系:互换第一次和第三次旋转的位置则两者结果相同。例如Z-Y-X旋转和内部旋转和X-Y-Z旋转的外部旋转的旋转矩阵相同。详见文章的 “6. 附录:两种旋转标准对应的24种旋转矩阵” 部分。

关于内旋和外旋这两个概念,只不过是对于两种旋转方式的欧拉角的简称。

多数教科书中少有提及“内旋”和“外旋”这两个名词,但是对于相应的两种情况都会进行详细介绍,例如本博客中第4点引用的《机器人学导论》(John J. Craig版)中内容所示。这两种情况都属于欧拉角的范畴,两者不同之处是旋转的参考对象和旋转顺序不同,但是最终变换后的结果是相同的,所谓殊途同归,可参见本博客第6点【附录:两种旋转标准对应的24种旋转矩阵】,发现两种情况下的矩阵乘积结果是相同。

至于以下问题:

默认情况下,即在不指定说明“内旋”或“外旋”情况下,欧拉角的解算属于其中的一种呢?

答案是:在航空、航海和工业机器人末端姿态描述中,通常默认采用的欧拉角形式是“XYZ固定角坐标系”,即“外旋”形式;又称“RPY角“,分别先后按照X轴偏转(Yaw)、Y轴俯仰(Pitch)和绕Z轴滚动(Roll),对应的矩阵变换形式为 Rxyz=R(Z)*R(Y)*R(X)。在实际应用中,选用哪种形式要根据对象的特点(固定工位机器人or 移动机器人or无人机)和计算方便性选择合适的欧拉角。

内旋和外旋的区分方法是:根据矩阵相乘顺序与旋转顺序是否一致,两者一致的为内旋,不一致的为外旋。

3 基于旋转轴分类的欧拉角:

在这里插入图片描述在这里插入图片描述

4 文献引用说明:

以下内容选自《机器人学导论》(John J. Craig版)的第31~34页。 在这里插入图片描述 在这里插入图片描述在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

5 常见误区:

下面内容摘自博客:欧拉角转旋转矩阵(Matlab内部函数&公式实现) 在这里插入图片描述 该博客作者混淆了欧拉角的两种不同转换标准,文章中写的

“S表示旋转顺序,我习惯上将‘XYZ’定义为“先旋转X,再旋转Y,最后旋转Z”,所以最后的R=RzRyRx(特别注意这里!不同的地方表示的含义不一样,有些工具(比如Matlab)里面’XYZ’,表示的是“先旋转Z,再旋转Y,最后旋转X”,所以最后的R=RxRyRz)”

这一部分,作者的旋转命名习惯(R=RzRyRx)是按照【欧拉角外旋】标准中的顺序,即每次旋转的轴是固定坐标系中的轴(绕固定坐标系旋转),所以R(XYZ)=RzRyRx;而MATLAB中计算欧拉角和旋转矩阵选用的是【欧拉角内旋】标准,即每次旋转围绕的轴是上次旋转之后坐标系的某个轴(绕动坐标系中的轴旋转),所以R(XYZ)=RxRyRz。

具体可通过MATLAB官方help文档中的案例来证明其错误,具体如下: 在这里插入图片描述 MATLAB官方help文档中计算欧拉角与旋转矩阵的函数说明: 由欧拉角计算旋转矩阵:eul2rotm 在这里插入图片描述 由旋转矩阵计算欧拉角:rotm2eul 在这里插入图片描述

6. 附录:两种旋转标准对应的24种旋转矩阵

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

参考文献:

欧拉角 图解释

[Matlab科学计算] 1.欧拉角和坐标变换个人总结

欧拉角转旋转矩阵(Matlab内部函数&公式实现)

JohnJ.Craig. 机器人学导论[M]. 2006.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3